package cc.sunni.service.impl;

import cc.sunni.entity.Student;
import cc.sunni.service.AbsCheckStudent;

import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;

/**
 * 然后再实现的是学生年龄的校验子类
 * 只能为整数，且小于60。
 */
public class StAgeCheck extends AbsCheckStudent {

    @Override
    public List<Student> checkStudent(List<Student> studentList) {
        //获取学生年龄不符合条件的学生对象
        List<Student> stAgeIsNotOk = studentList.stream().filter(stu -> {
            Integer stAge = stu.getAge();
            return Objects.isNull(stAge) || stAge <= 0 || stAge >= 60;
        }).collect(Collectors.toList());
        System.out.println("年龄校验不通过的数据有：" + stAgeIsNotOk.toString());
        //在原有的集合中移除不符合学生年龄的对象集合
        studentList.removeAll(stAgeIsNotOk);
        System.out.println("年龄校验通过的数据：" + studentList.toString());
        //返回通过学生姓名校验的学生的集合
        return studentList;
    }
}